iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
1
自我挑戰組

Laravel 學習歷程系列 第 16

Day16 【Laravel 學習歷程】- Migration 資料庫遷移(上)

  • 分享至 

  • xImage
  •  

繼昨日的挫敗,我決定今天就來研究一下資料庫遷移了/images/emoticon/emoticon30.gif

什麼是資料庫遷移?

原本都習慣要先到phpmyadmin建好資料表,
結果發現laravel是要用make artisan migrate
先到database\migrations\..設定好資料結構
再下migrate指令,就可以了
這樣一來在搬移主機等過程中,也會比較輕鬆。

如何建立遷移檔?

要開始建立東西就是要打開cmd
我第一次跟cmd這麼熟哈哈
第一次這麼頻繁的使用cmd,也第一次知道cmd可以這樣用
建立遷移檔要用使用 Artisanmigrate:make 命令建立遷移檔:

php artisan migrate:make create_users_table

在昨天的Day13 【Laravel 學習歷程】- 建立Model模型(上)以及
Day15 【Laravel 學習歷程】- 建立Laravel Authentication認證登入中有提到一點,
而那個方式是建立model的時候同步建立遷移檔

php artisan make:model Role --migration

建立完遷移檔進入database\migrations找到建立的table
進去那裏面要做什麼後面會說哈哈
然後再cmd一個

php artisan migrate

就會幫你把資料表遷移填充上去指定的db了

而當我們是在建立完model才要新增資料表怎麼辦呢?

遷移檔會建立在 app/database/migrations 目錄下,
檔名會包含時間戳記,在執行遷移時用來決定順序。
你也可以在建立遷移命令加上 --path 參數。路徑要相對於應用程式所在的根目錄。

php artisan migrate:make foo --path=app/migrations

--table--create 參數可以用來指定資料表名稱,以及遷移檔是否要建立新的資料表。

php artisan migrate:make add_votes_to_user_table --table=users

or

php artisan migrate:make create_users_table --create=users

如何執行遷移檔呢?

當我資料結構也都設定完成了,要怎麼把遷移檔同步上去餒?
這個時候一樣再度打開cmd下指令

php artisan migrate

他會把所有未完成遷移的資料都遷移到指定DB
還有一種是,設定只遷移特定路徑的未遷移資料就好

php artisan migrate --path=app/foo/migrations

如果遷移錯了,可以返回嗎?

喔這個太厲害了,居然還可以推回遷移
這個我完全需要學起來
狀態一:推回上一次的遷移

php artisan migrate:rollback

狀態二:推回所有遷移

php artisan migrate:reset

狀態三:推回所有遷移並且再執行一次

php artisan migrate:refresh

或者加上--seed

php artisan migrate:refresh --seed

明天來實作試試看了哈哈
/images/emoticon/emoticon08.gif


參考資料


上一篇
Day15 【Laravel 學習歷程】- 建立Laravel Authentication認證登入
下一篇
Day17 【Laravel 學習歷程】- Migration 資料庫遷移(下)
系列文
Laravel 學習歷程17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言